/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package utilitario;

import java.io.Serializable;
import java.util.ArrayList;
import utilitario.formEditaFuncionario;
import javax.swing.JOptionPane;

/**
 *
 * @author rodrig0x
 */
//classe que tratará da gravação e outros metodos relacionados aos funcionarios
public class Funcionario implements Serializable {

    //variaveis para o armazenamento das informações do funcionario
    private String nome, telefone, endereco, cpf, identidade, cargo, sexo, login, senha;
    private double salario;
    private int nivel_de_acesso, id;

    public void Funcionario(String nome, String telefone, String endereco, String cpf, String identidade, String cargo, String sexo, String login, String senha, double salario, int nivel_de_acesso, int id) {

        this.nome = nome;
        this.telefone = telefone;
        this.endereco = endereco;
        this.cpf = cpf;
        this.identidade = identidade;
        this.cargo = cargo;
        this.sexo = sexo;
        this.login = login;
        this.senha = senha;
        this.salario = salario;
        this.nivel_de_acesso = nivel_de_acesso;
        this.id = id;
    }

    public String getNome() {
        return nome;
    }

    public void setNome(String nome) {
        this.nome = nome;
    }

    public String getTelefone() {
        return telefone;
    }

    public void setTelefone(String telefone) {
        this.telefone = telefone;
    }

    public String getEndereco() {
        return endereco;
    }

    public void setEndereco(String endereco) {
        this.endereco = endereco;
    }

    public String getCpf() {
        return cpf;
    }

    public void setCpf(String cpf) {
        this.cpf = cpf;
    }

    public String getIdentidade() {
        return identidade;
    }

    public void setIdentidade(String identidade) {
        this.identidade = identidade;
    }

    public String getCargo() {
        return cargo;
    }

    public void setCargo(String cargo) {
        this.cargo = cargo;
    }

    public String getSexo() {
        return sexo;
    }

    public void setSexo(String sexo) {
        this.sexo = sexo;
    }

    public String getLogin() {
        return login;
    }

    public void setLogin(String login) {
        this.login = login;
    }

    public String getSenha() {
        return senha;
    }

    public void setSenha(String senha) {
        this.senha = senha;
    }

    public double getSalario() {
        return salario;
    }

    public void setSalario(double salario) {
        this.salario = salario;
    }

    public int getNivel_de_acesso() {
        return nivel_de_acesso;
    }

    public void setNivel_de_acesso(int nivel_de_acesso) {
        this.nivel_de_acesso = nivel_de_acesso;
    }

    public int getId() {
        return id;
    }

    public void setId(int id) {
        this.id = id;
    }

    //verifica se login informado esta cadastrado
    public static boolean loginExistente(ArrayList<Funcionario> lista, String login) {

        /*caso lista vasia*/
        if (lista.isEmpty() == true) {
            return false;
        }

        /*armazena o funcionario temporariamente*/
        Funcionario func = new Funcionario();

        /*verificação de login repitido de cada funcionario*/
        for (int i = 0; i < lista.size(); i++) {
            func = lista.get(i);
            if (login.equals(func.getLogin()) == true) {
                return true;
            }
        }
        return false;
    }

    /*Metodo para verificar se é permitodo o cadastro do funcionario informado*/
    public static boolean isCadastravel(ArrayList<Funcionario> lista, Funcionario possivelFuncionario) {
       
       
        
        //verificando se existe algum campo vazio
        if ((possivelFuncionario.getNome().equals("") == true) || (possivelFuncionario.getTelefone().equals("") == true)
                || (possivelFuncionario.getEndereco().equals("") == true) || (possivelFuncionario.getCpf().equals("") == true)
                || (possivelFuncionario.getIdentidade().equals("") == true) || (possivelFuncionario.getLogin().equals("") == true)
                || (possivelFuncionario.getSenha().equals("") == true)){
            return false;
        }
        
         //lista vasisia
        if(lista.isEmpty() == true){
            return true;
        }
        
        /*verificando se há dados de funcionarios repetidos*/
        for(int i=0;i<lista.size();i++){
            if((possivelFuncionario.getCpf().equals(lista.get(i).getCpf()) == true) || 
                   (possivelFuncionario.getIdentidade().equals(lista.get(i).getIdentidade()) == true) ||
                    (possivelFuncionario.getId() == lista.get(i).getId()) ||
                    (possivelFuncionario.getLogin().equals(lista.get(i).getLogin()) == true)){
                return false;
            }
        }

        return true;
    }

    public static void editarFuncionario(int posicao, ArrayList<Funcionario> lista) {
        JOptionPane.showMessageDialog(null, "ASd");
        Funcionario a = lista.get(posicao);
        formEditaFuncionario janela = new formEditaFuncionario();
        janela.getEditFuncionario(lista, a, posicao);
        janela.setVisible(true);



    }
    public static void main(String[] args){
        System.err.println("Vamo ve");
    }
}